// 预加载脚本：用于实现主进程和渲染进程的通信，先于渲染进程，在浏览器环境中执行

// 引入 electron 模块中的 contextBridge 和 ipcRenderer
const { contextBridge, ipcRenderer } = require('electron');

// 使用 contextBridge.exposeInMainWorld 方法将一些 Electron API 暴露给渲染进程
contextBridge.exposeInMainWorld('electronAPI', {
    // 定义一个名为 sendLoginRequest 的函数，用于向主进程发送登录请求
    // 参数 credentials 是用户的登录凭证
    sendLoginRequest: (credentials) => ipcRenderer.invoke('login-request', credentials),

    // 定义一个名为 notifyLoginSuccess 的函数，用于向主进程通知登录成功
    // 参数 user 是登录成功后的用户信息
    notifyLoginSuccess: (user) => ipcRenderer.send('login-success', user),

    // 定义一个名为 sendLogoutRequest 的函数，用于向主进程发送退出登录请求
    sendLogoutRequest: () => { ipcRenderer.send('logout-request'); },
    
    // 定义一个名为 onUserAuthenticated 的函数，用于监听主进程发送的用户认证成功事件
    // 参数 callback 是事件触发时执行的回调函数
    onUserAuthenticated: (callback) => ipcRenderer.on('user-authenticated', callback),

    // 获取当前用户
    getCurrentUser: () => ipcRenderer.invoke('get-current-user'),
});





